
package com.fire.web.modules.all.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.baomidou.mybatisplus.service.IService;
import com.fire.web.modules.all.entity.AjaxResult;
import com.fire.web.modules.all.entity.FireSupervisorModel;
import com.fire.web.modules.all.request.AddProprietorReq;
import com.fire.web.modules.all.request.AddSupervisorReq;

import java.util.List;
import java.util.Map;


/**
 * 监管单位Service
 *
 * @author Matthew
 * @Date 2019-01-10 11:21
 */
public interface IFireSupervisorService extends IService<FireSupervisorModel> {

	/**
	 * <p>
	 * 根据 model 条件，查询一条记录
	 * </p>
	 *
	 * @param model 实体对象 非空
	 * @return FireSupervisorModel
	 */
	FireSupervisorModel selectOne(FireSupervisorModel model);

	/**
	 * <p>
	 * 根据 entity 条件，查询全部记录
	 * </p>
	 *
	 * @param model 实体对象封装操作类（可以为 null）
	 * @return List<FireSupervisorModel>
	 */
	List<FireSupervisorModel> selectList(FireSupervisorModel model);

	/**
	 * <p>
	 * 根据 entity 条件，查询全部记录
	 * </p>
	 *
	 * @param model   实体对象封装操作类（可以为 null）
	 * @param wrapper SQL包装
	 * @return List<FireSupervisorModel>
	 */
	List<FireSupervisorModel> selectList(FireSupervisorModel model, Wrapper<FireSupervisorModel> wrapper);


	/**
	 * <p>
	 * 根据 entity 条件，查询全部记录（并翻页）
	 * </p>
	 *
	 * @param pagination 分页查询条件
	 * @param model      实体对象封装操作可以为 null）
	 * @param wrapper    SQL包装
	 * @return List<FireSupervisorModel>
	 */
	List<FireSupervisorModel> selectPage(Pagination pagination, FireSupervisorModel model, Wrapper<FireSupervisorModel> wrapper);

	AjaxResult addSupervisor(AddSupervisorReq req,String adminid);

	AjaxResult updateSupervisor(AddSupervisorReq req);

	/**
	 * 查询所有监管单位label\value值（下拉选使用）
	 * @return
	 */
	AjaxResult selectLabelValue(String supervisorid);

	/**
	 * 查询监管单位Map列表(增加完整地址数据列)带分页
	 * @param page
	 * @param wrapper
	 * @return
	 */
	Page<Map<String, Object>> querySupervisorListMap(Page page, Wrapper wrapper);


	/**
	 * 根据消防单位ID查询该单位管理的所有消防单位，包括自己
	 * @param supervisorid
	 * @return
	 */
	List<FireSupervisorModel> getSupervisorListById(String supervisorid);
}
